const request = axios.create({
  timeout: 50000,
});

// 引入Element UI的消息提示组件
const $message = ELEMENT.Message;
let userToken = localStorage.getItem("authtoken")
// 添加请求拦截器
request.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么
  config.headers.authtoken = userToken;
  return config;
}, function (error) {
  // 对请求错误做些什么
  $message.error('出错啦,请联系管理员解决');
  return Promise.reject(error);
});

// 添加响应拦截器
request.interceptors.response.use(function (response) {
  // 2xx 范围内的状态码都会触发该函数。
  // 对响应数据做点什么
  // 检查是否是文件下载响应（Blob类型）
  const res = response.data;
  if (response.config.responseType === 'blob' && res instanceof Blob) {
    // 如果是文件下载响应，直接返回
    return response;
  }
  if (res.code != 200) {
    if (res.code == 401) {
      localStorage.removeItem("authtoken")
      location.href = '/web/login.html'
      return Promise.reject(res.msg);
    }
    $message.error(res.msg);
    return Promise.reject(res.msg);
  }
  return res;
}, function (error) {
  // 超出 2xx 范围的状态码都会触发该函数。
  // 对响应错误做点什么
  return Promise.reject(error);
});